home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 590 / doc / msh.doc < prev    next >
Encoding:
Text File  |  1992-01-06  |  9.1 KB  |  247 lines

  1. @(#) Okami Microshell 1.4
  2.  
  3.                                  Okami Shell Version 1.4         
  4.  
  5.  
  6.  
  7.                            Okami Microshell
  8.                                          Version 1.5
  9.  
  10.  
  11.                                 von Wolfram Rösler ... Public Domain
  12.  
  13.  
  14.  
  15. Zum Lieferumfang der Okami-Shell gehört eine Mini-Shell, deren Aufgabe
  16. es ist, die Hauptshell aufzurufen. Die Notwendigkeit dazu ergibt sich aus
  17. dem folgenden Dilemma:
  18.  
  19. ! Damit von der Shell aus GEM-Programme gestartet werden können,
  20. muß die Shell vom Desktop aus als PRG gestartet werden.
  21. ! Die Shell lädt die Datei profile nur dann, wenn ihr als Parameter ein
  22. Minuszeichen übergeben wird (Login-Shell, wie in Unix).
  23. ! Beim Aufruf vom Desktop als PRG ist die Eingabe eines Parameters
  24. nicht vorgesehen
  25. ! Also kann man keine Login-Shell aufrufen, von der der Start von
  26. GEM-Programmen möglich ist.
  27.    
  28. Zu diesem Zweck gibt es die Microshell, die, wenn sie als PRG aufgeru-
  29. fen wird und dann ihrerseits die Okami-Shell aufruft, den Start von GEM-
  30. Programmen ermöglicht.
  31.  
  32. Die Microshell erfüllt allerdings nicht nur diesen Zweck, sondern sie ist
  33. ein Werkzeug zur Kontrolldatei-gesteuerten Ausführung mehrerer Program-
  34. me mit jeweiligen Parametern. Dazu wird eine Datei angelegt, in der die
  35. Namen der aufzurufenden Programme und die zu übergebenden Parameter
  36. angeführt sind. Das macht die Microshell tatsächlich zu einer kleineren
  37. Version einer Shell, die zwar nicht interaktiv arbeitet, aber trotzdem in
  38. der Lage ist, z.B. einen Compiler oder Linker aufzurufen und das Ergeb-
  39. nis anschließend zu starten.
  40. Die Microshell ist also ein vollwertiger Batch-Prozessor, der seine eige-
  41. nen Shellscripts (die eine Untermenge der Okami-Shellscripts darstellen)
  42. hat und für die vielfältigsten Aufgaben eingesetzt werden kann (natürlich
  43. auch vollkommen unabhängig von dem restlichen Okami-System).
  44.  
  45. Die Batch- oder Kontrolldateien, die von der Microshell benutzt werden,
  46. werden als MSH-Scripts bezeichnet.
  47.  
  48.  
  49. Die Microshell befindet sich in der Datei msh.prg. Der Quellcode der Mi-
  50. croshell gehört zum Lieferumfang und befindet sich in der Datei msh.c.
  51.  
  52. Nach dem Start der Microshell als MSH.PRG wird als MSH-Script die
  53. Datei msh.inf im aktuellen Directoy benutzt.
  54. Wenn die Microshell als MSH.TTP oder von der Okami-Shell aus aufgeru-
  55. fen wird, ist die Eingabe einer Kommandozeile möglich, die folgender
  56. Syntax folgt:
  57.  
  58.     { Dateiname } [-c { Kommandos }]
  59.  
  60.  
  61. Die angegebenen Dateien werden als MSH-Scripts ausgeführt. Wenn nach
  62. -c Kommandos angegeben sind, werden diese direkt ausgeführt. Dies kön-
  63. nen die Namen von zu startenden Programmen, aber auch interne Kom-
  64. mandos der Microshell sein.
  65. ACHTUNG: Jeder Parameter stellt dabei ein vollständiges Kommando dar.
  66. Bei dem Aufruf
  67.  
  68.         msh -c echo hallo
  69.  
  70. werden zwei Kommandos, nämlich "echo" und "hallo", übergeben. Um das
  71. Kommando "echo hallo" ausführen zu lassen, muß der Aufruf so ausse-
  72. hen:
  73.  
  74.         msh -c "echo hallo"
  75.  
  76.  
  77. Die einzelnen Zeilen eines Scripts haben folgende Bedeutung:
  78.  
  79. 1) Führende und endende Whitespace-Zeichen (Leerzeichen, Tabs, Newli-
  80. nes etc.) werden ignoriert.
  81. 2) Leerzeilen und Zeilen, die mit einem '#' (Doppelkreuz) beginnen, gelten
  82. als Kommentarzeilen.
  83. 3) Alle Zeilen, die keine Kommentarzeilen sind, können als letztes Zei-
  84. chen einen Backslash (\) erhalten, dann wird die darauf folgende Zeile an
  85. diese Zeile angehängt. 
  86. 4) Wenn eine Zeile nur aus einem Pluszeichen besteht, wird der Kom-
  87. mentarmodus eingeschaltet. Im Kommentarmodus wird der Name und die
  88. Parameter jedes aufgerufenen Programmes auf dem Bildschirm ausgege-
  89. ben. (Gilt nicht für interne Kommandos.) Nach dem Start der Microshell
  90. ist der Kommentarmodus eingeschaltet.
  91. 5) Wenn eine Zeile nur aus einem Minuszeichen besteht, wird der Kom-
  92. mentarmodus abgeschaltet.
  93. 6) Allen anderen Zeilen werden in der Form
  94.         Kommando Parameter
  95. interpretiert. Das Kommando ist dabei entweder der Name eines internen
  96. Kommandos oder der Dateiname eines auszuführenden Programms.
  97.  
  98.  
  99. Folgende interne Kommandos sind vorhanden:
  100.  
  101.     exit        das augenblickliche MSH-Script wird beendet.
  102.     echo        gibt den String `Parameter' auf dem Bildschirm aus.
  103.                 Der String darf Steuersequenzen enthalten, siehe unten.
  104.     incl        führt die als Parameter angegebene Datei als MSH-
  105.                 Script aus. Die maximale Schachtelungstiefe von incl-
  106.                 anweisungen ist nur durch den verfügbaren Speicher und
  107.                 die Maximalanzahl gleichzeitig offener Dateien be-
  108.                 grenzt.
  109.     ver        gibt die Versionsnummer der Microshell und den Kompi-
  110.                 lierungszeitpunkt aus.
  111.     wait        wartet auf Tastendruck oder Datum/Uhrzeit. Siehe unten.
  112.  
  113. Bei allen anderen Kommandos wird die als Kommando angegebene Datei
  114. ausgeführt, wobei der als Parameter angegebene String als Kommandozei-
  115. le übergeben wird.
  116. Es empfiehlt sich, den vollen Dateinamen anzugeben (was aber nicht im-
  117. mer unbedingt notwendig ist.)
  118.  
  119.  
  120. Steuersequenzen des echo-Kommandos:
  121.     \n    Newline
  122.     \t    Tabulator
  123.     \b    Backspace
  124.     \\    Backslash
  125.     \^    Zirkumflex
  126.     \c    (am Stringende) verhindert Zeilenvorschub
  127.     ^x    erzeugt das Zeichen mit Ascii-Code x-'A'+1. Hierbei ist
  128.             x ein beliebiges Zeichen.
  129.  
  130. Beispiele:
  131.  
  132.     echo Das ist eine Zeile \n und das ist die nächste.
  133.     echo Das ist eine Zeile \c
  134.     echo und das ist dieselbe.
  135.     echo Der folgende Text: ^[p ist invers durch eine \c
  136.     echo VT52-Steuersequenz. ^[q
  137.     echo Man kann Backslashes: \\ und Zirkumflexe: \^ ausgeben.
  138.     echo Ebenso kann man klingeln: ^G
  139.  
  140.  
  141. Benutzung des wait-Kommandos:
  142.  
  143. Das interne Kommando wait kann auf zwei Arten aufgerufen werden.
  144.  
  145.     wait key
  146.  
  147. In dieser Form wartet msh auf einen Tastendruck. Bei Druck auf ESC
  148. wird das aktuelle Script beendet, bei jeder anderen Taste wird es fortge-
  149. setzt.
  150.  
  151.     wait ttmmjj HHMMSS  [Text ]
  152.  
  153. In dieser Form wartet msh bis zu einem angegeben Datum und Uhrzeit.
  154. Wenn anstelle von ttmmjj ein Stern (*) steht, wartet msh nur bis zu der
  155. angegebenen Uhrzeit. Wenn der Protokollmodus aktiv ist, gibt msh folgen-
  156. de Zeile aus:
  157.     Waiting for Text... press ESC to abort
  158. Als Text steht hier der entsprechende Parameter von wait. Wenn kein
  159. Text angegeben ist, entfällt die Ausgabe von "for Text".
  160. Achtung: ttmmjj und HHMMSS müssen immer in dieser Form geschrieben
  161. werden, d.h. durch genau ein Leerzeichen getrennt; alle Zahlen müssen
  162. zweistellig angegeben sein. msh testet nicht auf Plausibilität; "wait 999999
  163. 999999" wartet endlos. (Ist halt eben eine "Micro"-Shell.)
  164.  
  165.  
  166. Die Microshell macht keinen Gebrauch von evtl. definierten Environment-
  167. Variablen, gibt diese aber an alle gestarteten Programme unverändert
  168. weiter.
  169.    
  170.  
  171. Beispiel 1: das MSH-Script zum Start der Okami-Shell
  172.  
  173.     # Microshell Kontrolldatei für Okami-Shell
  174.     -
  175.     echo Aufruf der Okami-Shell
  176.     sh.ttp -
  177.  
  178.  
  179. Es wird die Okami-Shell als Login-Shell (mit dem Parameter "-") aufgeru-
  180. fen. Vor dem Aufruf der Shell wird die Meldung "Aufruf der Okami-Shell"
  181. auf den Bildschirm geschrieben.
  182.  
  183.  
  184. Beispiel 2: ein komplizierteres Script
  185.  
  186.  
  187.     # Demo-Script für die Microshell
  188.     -
  189.     ver
  190.     echo Das ist ein MSH-Script
  191.  
  192.     echo Aufruf des Compilers
  193.     d:\compiler\cc.ttp e:\source\test1.c e:\source\test2.c \
  194.     e:source\test3.c -o e:\bin\test.tos
  195.  
  196.     # Ausführen eines anderen Scripts
  197.     incl e:\bin\mshdemo.msh
  198.  
  199.     # Aufruf der Okami-Shell
  200.     echo Plattenbelegung von Laufwerk E:
  201.     e:\bin\sh.ttp df E: ; echo ENTER: ; read
  202.  
  203.  
  204. Neben Kommentaren und Ausgabeanweisungen (echo) wird der Compiler
  205. (in der Datei d:\compiler\cc.ttp) mit einer über zwei Zeilen gehenden Pa-
  206. rameterliste aufgerufen. Danach wird eine weiteres Script
  207. (e:\bin\mshdemo.msh) ausgeführt und durch Aufruf der Okami-Shell die
  208. Belegung von Partition E: ausgegeben und auf einen Tastendruck gewar-
  209. tet.
  210.  
  211.  
  212. Beispiel 3: Starten eines Mailbox-Poll-Programms zu einer bestimmten
  213. Zeit
  214.  
  215.     wait * 023000 Poll time
  216.     c:/bin/poll.ttp
  217.     d:/okami/sh.ttp shutdown -rf
  218.  
  219. Dieses MSH-Script wartet bis 2.30 Uhr und startet dann das Programm
  220. c:/bin/poll.ttp . Danach ruft es die Okami-Shell auf, um einen Reset
  221. durchzuführen. Das MSH-Script sollte also so installiert werden, daß es
  222. nach dem Systemstart sofort ausgeführt wird.
  223. Während der Wartezeit erscheint die Meldung "Waiting for Poll ti-
  224. me... press ESC to abort". Wenn der Anwender währenddessen die ESC-
  225. Taste drückt, wird das Script abgebrochen.
  226.  
  227.  
  228. Die Microshell kann auch anstelle des Auto-Ordners benutzt werden. Da-
  229. zu kopiert man sich alle Programme, die beim Systemstart geladen wer-
  230. den sollen, in einen eigenen Ordner, z.B. in den Ordner c:\startup. In den
  231. eigentlichen Auto-Ordner kopiert man nur die Datei msh.prg. Unter dem
  232. Namen c:\msh.inf wird eine Datei angelegt, die die Namen der zu star-
  233. tenden Programme in der gewünschten Reihenfolge enthält. (Im einfach-
  234. sten Fall erzeugt man diese Datei von der Okami-Shell aus mit dem
  235. Kommando:
  236.     ls -nk c:\startup\*.prg >c:\msh.inf
  237.  
  238. Dann ist die Wirkung dieselbe wie beim Aufruf aus dem Auto-Ordner.)
  239. Außerdem kann die inf-Datei Kommentare und echo-Zeilen erhalten. Na-
  240. türlich ist von der Microshell aus auch der Aufruf von Programmen aus
  241. beliebigen anderen Ordnern möglich.
  242. WICHTIG: die Datei msh.inf muß bei dieser Verwendung im Wurzelver-
  243. zeichnis von C: liegen und nicht im Auto-Ordner, da beim Systemstart das
  244. Wurzelverzeichnis das aktuelle Directory ist, auch bei der Ausführung der
  245. Programme im Auto-Ordner.
  246.  
  247.